/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package app.modelo;

import java.util.ArrayList;

/**
 *
 * @author Lain
 */
public class Tabla {
    private String nombre;
    private ArrayList<Fila> filas;
    private ArrayList<Columna> columnas;

    public Tabla() {
        filas = new ArrayList();
        columnas = new ArrayList();
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
    
    public void agregarColumna(Columna columna){
        columnas.add(columna);
    }
    
    public Columna obtenerColumna(int indice){
        return columnas.get(indice);
    }
    
    public void agregarFila(Fila fila){
        filas.add(fila);
    }
    
    public Fila obtenerFila(int indice){
        return filas.get(indice);
    }
    
    public void quitarFila(int indice){
        filas.remove(indice);
    }
    
    public int calcularTotalFilas(){
        return filas.size();
    }
    
    public int calcularTotalColumnas(){
        return columnas.size();
    }
    
    public void limpiarTabla(){
        filas.clear();
        columnas.clear();
    }
    
    public boolean estaVacia(){
        return filas.isEmpty();
    }
    
    public void actualizarValor(Object valor, int fila, int columna){
        Fila oFila = filas.get(fila);
        if(oFila != null)
            oFila.actualizarValor(columna, valor);
    }
    
    public Object obtenerValor(int fila, int columna){
        Fila oFila = filas.get(fila); 
        if(oFila != null)
            return oFila.obtenerValor(columna);
        else
            return null;
    }
    
    public String obtenerNombreColumna(int columna){
        Columna oColumna = columnas.get(columna);
        if(oColumna != null)
            return oColumna.getNombre();
        else
            return null;
    }
    
    public String obtenerClaseColumna(int columna){
        Columna oColumna = columnas.get(columna);
        if(oColumna != null)
            return oColumna.getClase();
        else
            return null;
    }
}
